# coding:utf8
import findspark

findspark.init()
from pyspark.sql import SparkSession

if __name__ == '__main__':
    # 0. 构建执行环境入口对象SparkSession
    spark = SparkSession.builder. \
        appName("test"). \
        master("local[*]"). \
        config("spark.sql.shuffle.partitions", 2). \
        getOrCreate()
    sc = spark.sparkContext

    """读取数据"""
    df = spark.read.format("csv"). \
        option("sep", ";"). \
        option("header", True). \
        load("hdfs://bigdata:9820/pySpark_input/people.csv")
    #  数据清洗: 缺失值处理
    #  dropna api是可以对缺失值的数据进行删除
    #  无参数使用, 只要列中有null 就删除这一行数据
    df.dropna().show()
    # thresh = 3表示, 最少满足3个有效列,  不满足 就删除当前行数据
    df.dropna(thresh=3).show()
    df.dropna(thresh=2, subset=['name', 'age']).show()
